package com.xb.loan.usercenter.service.user;


import com.xb.loan.log.exception.BizException;
import com.xb.loan.usercenter.service.user.bean.UserIdentifyVO;
import com.xb.loan.usercenter.service.user.bean.UserInfoVO;
import com.xb.loan.usercenter.service.user.bean.UserThirdLoginVO;

/**
 * 类  描  述 : 第三方登录帐号授权服务类
 */
public interface IUserThirdAuthService {
    /**
     * 
     * 注册第三方帐号在本系统，是用户可以通过第三方帐号直接登录，不再需要输入用户名、密码。
     * @param userInfoVO 用户信息对象，只需USER_ID、LOGIN_NAME、PASSWD属性值
     * @param userThirdLoginVO 用户附属信息对象，只需Thirduser_ID、ThirdLogin_type属性值
     * @return 新注册的用户编码userId
     */
    String registerThirdUser(UserInfoVO userInfoVO, UserThirdLoginVO userThirdLoginVO) throws BizException;


    /**
     *
     * 注册第三方帐号在本系统，是用户可以通过第三方帐号直接登录，不再需要输入用户名、密码。
     * @param userInfoVO 用户信息对象，只需USER_ID、LOGIN_NAME、PASSWD属性值
     * @param userThirdLoginVO 用户附属信息对象，只需Thirduser_ID、ThirdLogin_type属性值
     * @param userIdentifyVO 用户实名信息对象，只需realName、cardType、cardNo、phone属性值
     * @return 新注册的用户编码userId
     */
    String registerThirdUser(UserInfoVO userInfoVO, UserThirdLoginVO userThirdLoginVO, UserIdentifyVO userIdentifyVO) throws BizException;

    /**
     *
     * 绑定第三方帐号在本系统，是用户可以通过第三方帐号直接登录，不再需要输入用户名、密码。
     * @param userId 用户编号
     * @param userThirdLoginVO 用户附属信息对象，只需Thirduser_ID、ThirdLogin_type属性值
     * @return 返回修改操作记录的条数
     */
    int bindThirdUser(String userId, UserThirdLoginVO userThirdLoginVO) throws BizException;
    /**
     *
     * 通过第三方帐号信息查询判断用户信息是否存在， 查询成功返回UserInfo对象，失败返回null。
     * @param partnerId 渠道编号
     * @param thirdLoginType 第三方类型 1QQ、2微信
     * @param thirdUserId 第三方帐号
     * @return 返回修改操作记录的条数
     */
    UserInfoVO thirdUserLogin(String partnerId, int thirdLoginType, String thirdUserId) throws BizException;
}
